/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package RapiWeb;

import RapiWeb.Objeto.CampoBD;
import Utilidades.Archivo;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;

/**
 *
 * @author SI-TI
 */
public class JP_ListaSeleccion extends JPanel{
    private JComboBox cbx_Tabla;
    private JList l_Deracha;
    private JList l_Izquierda;
    private JButton btn_Derecha;
    private JButton btn_TodosDerecha;
    private JButton btn_Izquierda;
    private JButton btn_TodosIzquierda;
    private String[] str_Tablas;
    private String Str_NomProyecto;
    
    public JP_ListaSeleccion(){
        setLayout(new BorderLayout());
        setSize(400, 400);
        addComponentes();
        addEventos();
    }

    public JList getL_Deracha() {
        return l_Deracha;
    }

    public void setL_Deracha(JList l_Deracha) {
        this.l_Deracha = l_Deracha;
    }

    public JList getL_Izquierda() {
        return l_Izquierda;
    }

    public void setL_Izquierda(JList l_Izquierda) {
        this.l_Izquierda = l_Izquierda;
    }





    
    
    private void addComponentes() {
        JPanel p_Norte= new JPanel();
        JPanel p_Derecha= new JPanel();
        JPanel p_Centro= new JPanel();
        JPanel p_Izquierda= new JPanel();
        str_Tablas= new String[]{"dato1","dato2"};
        p_Centro.setLayout(new GridLayout(4, 1));
        
        cbx_Tabla= new JComboBox();
        p_Norte.add(cbx_Tabla);
        
        l_Deracha= new JList();
        l_Izquierda= new JList(str_Tablas);
        l_Izquierda.setSelectionMode( ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        
        p_Derecha.add(l_Deracha);
        p_Izquierda.add(l_Izquierda);
        
        btn_Derecha=new JButton(">");
        btn_Izquierda=new JButton("<");
        btn_TodosDerecha=new JButton(">>");
        btn_TodosIzquierda=new JButton("<<");
        
        p_Centro.add(btn_Derecha);
        p_Centro.add(btn_Izquierda);
        p_Centro.add(btn_TodosDerecha);
        p_Centro.add(btn_TodosIzquierda);
        
        add(p_Norte,"North");
        add(p_Derecha,"East");
        add(p_Centro,"Center");
        add(p_Izquierda,"West");
        
    }

    private void addEventos() {
        cbx_Tabla.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                m_CamposTabla();
            }
        });
        btn_Derecha.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if(l_Izquierda.getSelectedIndex()>=0){
                l_Deracha.add(l_Izquierda.getSelectedValue().toString(),null);
                l_Izquierda.remove(l_Izquierda.getSelectedIndex());
                }
            }
        });
        btn_TodosDerecha.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if(l_Izquierda.getSelectedIndex()>=0){
                    for(int i=0;i<l_Izquierda.getComponentCount()-1;i++){
                        l_Izquierda.setSelectedIndex(i);
                        l_Deracha.add(l_Izquierda.getSelectedValue().toString(),null);
                        l_Izquierda.remove(l_Izquierda.getSelectedIndex());
                    }
                
                }
            }
        });
    }

    private void m_CamposTabla() {
        Archivo archi = new Archivo();
        archi.m_LeerArchivo(Str_NomProyecto + "/Tablas/" + cbx_Tabla.getSelectedItem());
        int int_Lineas = archi.getInt_TotalLineas();
        archi.m_LeerMultiTokens(Str_NomProyecto + "/Tablas/" + cbx_Tabla.getSelectedItem(), 5, "=", int_Lineas);
        
        l_Izquierda.removeAll();
        CampoBD[] campoBD = new CampoBD[int_Lineas];
        for (int i = 0; i < archi.dameLinea_Separada().length; i++) {
//            String str_Campo=archi.dameLinea_Separada()[i].getStr_Palabras(0)+"="+
//                    archi.dameLinea_Separada()[i].getStr_Palabras(1)+"="+
//                    archi.dameLinea_Separada()[i].getStr_Palabras(2)+"="+
//                    archi.dameLinea_Separada()[i].getStr_Palabras(3)+"="+
//                    archi.dameLinea_Separada()[i].getStr_Palabras(4);
            campoBD[i] = new CampoBD();
            campoBD[i].setStr_NomCampo(archi.dameLinea_Separada()[i].getStr_Palabras(0));
            campoBD[i].setStr_Tamaño(archi.dameLinea_Separada()[i].getStr_Palabras(2));
            campoBD[i].setStr_Tipo(archi.dameLinea_Separada()[i].getStr_Palabras(1));
            campoBD[i].setStr_Nulo(archi.dameLinea_Separada()[i].getStr_Palabras(3));
            campoBD[i].setStr_Ordenar(archi.dameLinea_Separada()[i].getStr_Palabras(4));
//            l_Izquierda.add();
        }
    }
    
            
    
}
